package com.zjsru.plan2023.oneday;

/**
 * @Author: cookLee
 * @Date: 2023-10-26
 * 统计能整除数字的位数
 */
public class CountDigits {

    /**
     * 主
     * \
     * 输入：num = 7
     * 输出：1
     * 解释：7 被自己整除，因此答案是 1 。
     * \
     * 输入：num = 121
     * 输出：2
     * 解释：121 可以被 1 整除，但无法被 2 整除。由于 1 出现两次，所以返回 2 。
     * @param args args
     */
    public static void main(String[] args) {
        CountDigits countDigits = new CountDigits();
        int num = 121;
        System.out.println(countDigits.countDigits(num));
    }

    /**
     * 计数数字
     *
     * @param num num
     * @return int
     */
    private int countDigits(int num) {
        String s = String.valueOf(num);
        int count = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (Integer.parseInt(s) % Integer.parseInt(String.valueOf(c)) == 0) {
                count++;
            }
        }
        return count;
    }

    /**
     * 计数数字2
     *
     * @param num num
     * @return int
     */
    public int countDigits2(int num) {
        int copy = num;
        int count = 0;
        while (copy != 0) {
            if (num % (copy % 10) == 0) {
                count++;
            }
            copy /= 10;
        }
        return count;
    }
}
